Skip to content

Add support for Fercofloor FT2C10V fan coil (FC-WIFI-0-10V EC)#5443

Merged
make-all merged 2 commits into
make-all:mainfrom
fervillab:add-fercofloor-ft2c10v
Jul 4, 2026
Merged

Add support for Fercofloor FT2C10V fan coil (FC-WIFI-0-10V EC)#5443
make-all merged 2 commits into
make-all:mainfrom
fervillab:add-fercofloor-ft2c10v

Conversation

@fervillab

Copy link
Copy Markdown
Contributor

This PR adds support for the Fercofloor FT2C10V fan coil controller.

Device manufacturer page

The device provides HVAC control, fan speed management, fault reporting, child lock, operating state, and weekly scheduling.

Entities

Climate (thermostat)

Full HVAC control implementation:

  • DP1: hvac_mode (off / cool / heat / fan_only)
  • DP2: temperature (setpoint, scaled ÷10)
  • DP3: current_temperature (scaled ÷10, read-only)
  • DP4: mode (internal constraint, hidden)
  • DP5: fan_mode (auto / low / middle / high)
  • DP11: preset_mode (manual / program)

Lock (child lock)

  • DP7: lock

Binary sensor (fault)

  • DP13: problem (bitfield decoded into multiple fault conditions)

Binary sensor (operating state)

  • DP14: opening
  • opened / closed
  • It represents the water valve of the fancoils

Text (weekly program)

  • DP17: week_program
  • type: base64
  • hidden: true
  • raw weekly schedule (7 days × 4 periods/day)
  • 112-byte payload (encoded in base64)
  • It is exposed as raw data only.

Data Model

{
    "modelId": "00000026x0",
    "services": [
        {
            "actions": [],
            "code": "",
            "description": "",
            "events": [],
            "name": "默认服务",
            "properties": [
                {
                    "abilityId": 1,
                    "accessMode": "rw",
                    "code": "switch",
                    "description": "",
                    "extensions": {
                        "iconName": "icon-a_power",
                        "attribute": "5"
                    },
                    "name": "开关",
                    "typeSpec": {
                        "type": "bool"
                    }
                },
                {
                    "abilityId": 2,
                    "accessMode": "rw",
                    "code": "temp_set",
                    "description": "",
                    "extensions": {
                        "iconName": "icon-wendu1",
                        "attribute": "4"
                    },
                    "name": "目标温度",
                    "typeSpec": {
                        "type": "value",
                        "max": 350,
                        "min": 50,
                        "scale": 1,
                        "step": 5,
                        "unit": "°C"
                    }
                },
                {
                    "abilityId": 3,
                    "accessMode": "ro",
                    "code": "temp_current",
                    "description": "",
                    "name": "当前温度",
                    "typeSpec": {
                        "type": "value",
                        "max": 999,
                        "min": 0,
                        "scale": 1,
                        "step": 5,
                        "unit": "°C"
                    }
                },
                {
                    "abilityId": 4,
                    "accessMode": "rw",
                    "code": "mode",
                    "description": "",
                    "extensions": {
                        "iconName": "icon-dp_mode",
                        "attribute": "4"
                    },
                    "name": "工作模式",
                    "typeSpec": {
                        "type": "enum",
                        "range": [
                            "fan",
                            "cold",
                            "heat",
                            "auto"
                        ]
                    }
                },
                {
                    "abilityId": 5,
                    "accessMode": "rw",
                    "code": "level",
                    "description": "",
                    "extensions": {
                        "iconName": "icon-FanSpeed",
                        "attribute": "4"
                    },
                    "name": "档位",
                    "typeSpec": {
                        "type": "enum",
                        "range": [
                            "auto",
                            "low",
                            "middle",
                            "high"
                        ]
                    }
                },
                {
                    "abilityId": 7,
                    "accessMode": "rw",
                    "code": "child_lock",
                    "description": "",
                    "name": "童锁",
                    "typeSpec": {
                        "type": "bool"
                    }
                },
                {
                    "abilityId": 11,
                    "accessMode": "rw",
                    "code": "countdown",
                    "description": "0:手动模式;1:自动模式",
                    "name": "周编程",
                    "typeSpec": {
                        "type": "enum",
                        "range": [
                            "Disable",
                            "Enable"
                        ]
                    }
                },
                {
                    "abilityId": 13,
                    "accessMode": "ro",
                    "code": "fault",
                    "description": "",
                    "extensions": {
                        "scope": "fault"
                    },
                    "name": "故障告警",
                    "typeSpec": {
                        "type": "bitmap",
                        "label": [
                            "int_sensor",
                            "ext_sensor",
                            "device_offline",
                            "low_protect"
                        ],
                        "maxlen": 4
                    }
                },
                {
                    "abilityId": 14,
                    "accessMode": "ro",
                    "code": "work_state",
                    "description": "",
                    "name": "工作状态",
                    "typeSpec": {
                        "type": "enum",
                        "range": [
                            "no_working",
                            "working"
                        ]
                    }
                },
                {
                    "abilityId": 17,
                    "accessMode": "rw",
                    "code": "week_program2",
                    "description": "一周每日可设置四段时间,包括开始时间和温度。每段时间4个字节组成,一周一共4*4*7=112个字节。\\n每段时间4个字节中,前两个字节为开始时间(单位为分钟),后两个字节为温度(含小数)。比如6:30分开始温度为35摄氏度,即01 86 01 5e,01 86转换为十进制为390(分钟),对应时间点为6:30,;01 5e转换为十进制为350,即温度设置问35.0",
                    "name": "周程序(四段式)",
                    "typeSpec": {
                        "type": "raw",
                        "maxlen": 128
                    }
                }
            ]
        }
    ]
}

@ciltocruz

Copy link
Copy Markdown

+1

Comment thread custom_components/tuya_local/devices/fercofloor_ft2c10v.yaml Outdated
Comment thread custom_components/tuya_local/devices/fercofloor_ft2c10v.yaml Outdated
@github-project-automation github-project-automation Bot moved this from 👀 In review to 🏗 Stalled in Tuya Local Jul 1, 2026
@fervillab
fervillab force-pushed the add-fercofloor-ft2c10v branch from 9269a1a to 5b7d2e7 Compare July 2, 2026 22:24
@fervillab
fervillab force-pushed the add-fercofloor-ft2c10v branch from 5b7d2e7 to 8c7e07b Compare July 2, 2026 22:30
@make-all make-all moved this from 🏗 Stalled to 👀 In review in Tuya Local Jul 2, 2026
@fervillab
fervillab requested a review from make-all July 3, 2026 19:11
Updated entity names and added hvac_action mapping for better clarity.
@make-all
make-all merged commit 3e9d6ab into make-all:main Jul 4, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from 👀 In review to ✅ Done in Tuya Local Jul 4, 2026
make-all added a commit that referenced this pull request Jul 4, 2026
@fervillab
fervillab deleted the add-fercofloor-ft2c10v branch July 4, 2026 11:27
@fervillab

Copy link
Copy Markdown
Contributor Author

Thank you very much for reviewing and merging this PR!

I also really appreciate the change to expose the working/no_working state as hvac_action instead of a separate binary sensor. It's a much cleaner solution. I learned something new from that.

This was my first contribution to Tuya Local, so thanks as well for the guidance and the review throughout the process.

tomgidden pushed a commit to tomgidden/tuya-local that referenced this pull request Jul 4, 2026
…all#5443)

* Add Fercofloor FT2C10V fan coil support

* Refactor Fancoils device configuration

Updated entity names and added hvac_action mapping for better clarity.

---------

Co-authored-by: Jason Rumney <make-all@users.noreply.github.com>
tomgidden pushed a commit to tomgidden/tuya-local that referenced this pull request Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants